#include <bits/stdc++.h>

#define in read()
#define fi first
#define se second
#define pb push_back
#define y1 y_alpha_1

using namespace std;

using ll = long long;
using db = double;
using vec = vector<int>;
using pii = pair<int,int>;

int read() {
	int x = 0; bool f = 0; char ch = getchar();
	while(!isdigit(ch)) f |= ch == '-',ch = getchar();
	while(isdigit(ch)) x = (x << 1) + (x << 3) + (ch ^ 48),ch = getchar();
	return f ? -x : x;
}

const int N = 8e6 + 10;

int c[N][2],s[N],ndn,ch[N][4],n,m,rt;
bool v[N];

bool dfs(int x) {
	s[x] = 1; if(!c[x][0] && !c[x][1]) return 1;
	if(c[x][0] && !dfs(c[x][0])) return 0;
	if(c[x][1] && !dfs(c[x][1])) return 0;
	s[x] = s[c[x][0]] + s[c[x][1]] + 1;
	if(s[c[x][0]] > 1 && s[c[x][1]] > 1) return 0;
	return 1;
}

void dfs1(int x,int &y) {
	int lz = s[c[x][0]],rz = s[c[x][1]]; if(!y) y = ++ndn;
	if(!lz && !rz) return v[y] = 1,void();
	if(lz >= 1 && rz == 0) dfs1(c[x][0],ch[y][0]);
	if(rz >= 1 && lz == 0) dfs1(c[x][1],ch[y][1]);
	if(lz >= 1 && rz == 1) dfs1(c[x][0],ch[y][2]);
	if(rz >= 1 && lz == 1) dfs1(c[x][1],ch[y][3]);
}

bool check(int x) {
	if(v[x]) return 1;
	if(!ch[x][0] || !ch[x][1] || !ch[x][2] || !ch[x][3]) return 0;
	return check(ch[x][0]) && check(ch[x][1]) && check(ch[x][2]) && check(ch[x][3]);
}

int main() {
#ifndef ONLINE_JUDGE
	freopen("ex_surreal6.in","r",stdin);
#endif
	for(int T = in;T;T--) {
		m = in; for(int i = 1;i <= ndn;i++) s[i] = ch[i][0] = ch[i][1] = ch[i][2] = ch[i][3] = v[i] = 0; ndn = rt = 0;
		bool fl = 0;
		for(int i = 1;i <= m;i++) {
			n = in; fl |= n == 1;
			for(int j = 1;j <= n;j++) c[j][0] = in,c[j][1] = in;
			for(int j = 1;j <= n;j++) s[j] = 0;
			if(dfs(1)) dfs1(1,rt);
		}
		if(fl == 1) puts("Almost Complete");
		else if(check(rt)) puts("Almost Complete");
		else puts("No");
	}
	return 0;
}
